package resource;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import Configuration.Encrypter;
import Configuration.EncryptorException;
import DAO.UsuarioDAOFactory;

import model.Usuario;

@Path("/verificarPost")
public class VerificaUsuarioResourcePost {

	@POST
	@Produces(MediaType.APPLICATION_JSON)
	@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
	public Usuario fazLogin(@FormParam("login") String login,
			@FormParam("senha") String senha,
			@FormParam("flagEncriptacao") String flagEncriptacao,
			@Context HttpServletResponse servletResponse) throws IOException{
			
		Usuario usuarioTemp = new Usuario();
        usuarioTemp.setLogin(login);
if (flagEncriptacao.equals("2")) {
            
            try {
                usuarioTemp.setSenha(Encrypter.decriptar(Encrypter.CHAVE, senha));
            } catch (EncryptorException ex) {
                Logger.getLogger(VerificaUsuarioResource.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            usuarioTemp.setSenha(senha);
        }
        Usuario usuario = UsuarioDAOFactory.getInstance().getDAO().verifyUsuario(usuarioTemp);

        if (flagEncriptacao.equals("1") && usuario != null) {
            try {
                usuario.setSenha(Encrypter.encriptar(Encrypter.CHAVE, senha));
            } catch (EncryptorException ex) {
                Logger.getLogger(VerificaUsuarioResource.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return usuario;
	}

}
